package com.zenith.article.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zenith.article.po.domain.ArtArticle;
import com.zenith.article.po.dto.ArtArticleDTO;
import com.zenith.common.result.PageResult;

/**
 * 文章主表服务接口
 *
 * @author zenith
 * @since 2025-08-29
 */
public interface ArtArticleService extends IService<ArtArticle> {

    /**
     * 分页查询文章
     *
     * @param query 查询条件
     * @return 分页结果
     */
    PageResult<ArtArticle> getArtArticlePage(ArtArticleDTO query);

    /**
     * 创建文章
     *
     * @param articleDTO 文章信息
     * @return 创建结果
     */
    boolean createArtArticle(ArtArticleDTO articleDTO);

    /**
     * 更新文章
     *
     * @param articleDTO 文章信息
     * @return 更新结果
     */
    boolean updateArtArticle(ArtArticleDTO articleDTO);

    /**
     * 删除文章
     *
     * @param id 文章ID
     * @return 删除结果
     */
    boolean deleteArtArticle(Long id);

    /**
     * 发布文章
     *
     * @param id 文章ID
     * @return 发布结果
     */
    boolean publishArtArticle(Long id);

    /**
     * 获取文章详情
     *
     * @param id 文章ID
     * @return 文章详情
     */
    ArtArticleDTO getArtArticleDetail(Long id);
}